package jv.redis.datatype.hash;

import java.util.Map;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import redis.clients.jedis.Jedis;

public class RedisHash {
	Jedis jedis;
	@Before
	public void initRedis(){
		jedis = new Jedis("redis://192.168.1.108:6379");
	}
	
	@After
	public void closeRedis(){
		//注意不要使用jedis.shutdown()，这样会把服务器停掉。。。
		jedis.close();
	}
	@Test
	public void hashOptions(){
		//写到这里发现jedis方法和redis对应命令几乎是一模一样的，和redisson完全不同，可以参考jv.redis.datatype.string.RedisString.java中使用redisson写的代码
		jedis.hset("person:1", "name", "lucy");
		jedis.hset("person:1", "sex", "female");
		jedis.hset("person:1", "age", "23");
		/*通过散列类型，可以记录一个对象的多个属性，再使用后面的集合记录所有person，那么两种结构凑在一起就成了关系数据库中的一
		 * 张表，在利用后面讲到的sort命令可以实现关系数据库中的关联查询效果
		 */
		Map<String,String> person = jedis.hgetAll("person:1");
		System.out.println("person:1="+person);
		
		
		//jedis.hmset(key, hash);	一次设置多个值，其中hash是一个字段与值的Map
		//jedis.hmget(key, fields);	一次获取多个字段值，其中fields是多个String的可变参数
		//jedis.hkeys(key);			得到所有
		//jedis.hvals(key);			得多所有值
	}
}
